package com.qs.javame.thread.daemon;

import com.qs.javame.thread.utils.SleepUtils;

/**
 * 守护线程：
 *  注意点：
 *  1、在线程启动之前设置线程为守护线程
 *  2、java虚拟机中不存在非Demon线程时候，将会退出，Java虚拟机退出时Daemon线程的finally块并不一定会执行
 */
public class TestDaemon {

    public static void main(String[] args) {
        Thread thread = new Thread(new DaemonRunner(), "DaemonRunner");
        //需要在线程启动之前设置线程为守护线程
        thread.setDaemon(true);
        thread.start();
    }


    static class DaemonRunner implements Runnable {

        @Override
        public void run() {
            try {
                SleepUtils.second(10);
            } finally {
                //java虚拟机退出时Daemon线程的finally块并不一定会执行
                System.out.println("DaemonThread finally run.");
            }
        }
    }
}
